package com.example.hellonotes.bmob;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.jar.Pack200;

import com.bmob.BTPFileResponse;
import com.bmob.BmobProFile;
import com.bmob.btp.callback.UploadListener;
import com.example.hellonotes.entity.Person;
import com.example.hellonotes.entity.Person2;
import com.example.hellonotes.entity.Person3;
import com.example.hellonotes.entity.Person4;

import android.content.Context;
import android.util.Log;
import cn.bmob.v3.BmobObject;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.BmobUser;
import cn.bmob.v3.datatype.BmobDate;
import cn.bmob.v3.datatype.BmobFile;
import cn.bmob.v3.listener.FindListener;
import cn.bmob.v3.listener.SaveListener;
import cn.bmob.v3.listener.UpdateListener;
import cn.bmob.v3.listener.UploadBatchListener;

public class bmobDb {
	
	private BmobFile bmobFile;
	private String Content;
	/**
	 * 往Bmob后端数据库 写入数据的方法
	 * @param context   上下文
	 * @param content  正文
	 * @param path       图片URI
	 *//*
	public void add(Context context,BmobUser user,String content,String path) {
		Person p1 = new Person();
		p1.setUser(user);
		p1.setContent(content);
		p1.setPath(path);
		p1.save(context, new SaveListener() {
			
			
			@Override
			public void onSuccess() {
				// TODO 自动生成的方法存根
				System.out.println("成功添加数据");
				
			}
			
			@Override
			public void onFailure(int arg0, String arg1) {
				// TODO 自动生成的方法存根
				System.out.println("创建数据失败"+arg1);
			}
		});
				
	}*/
	
	
	/**
	 *   创建数据
	 * @param context
	 * @param content
	 * @param path
	 */
	public void add2(Context context,String content,BmobFile path) {
		
		BmobUser user = BmobUser.getCurrentUser(context);
		System.out.println("BmobUser: "+user);
		Person2 p2 = new Person2();
		p2.setUser(user);
		p2.setContent(content);
		p2.setPath(path);
		p2.save(context, new SaveListener() {
			
			
			@Override
			public void onSuccess() {
				// TODO 自动生成的方法存根
				System.out.println("成功添加数据");
			}
			
			@Override
			public void onFailure(int arg0, String arg1) {
				// TODO 自动生成的方法存根
				System.out.println("创建数据失败"+arg1);
			}
		});
	}
	
	/*
	*//**
	 * 测试 path String字段存储
	 *//*
	public void add4(Context context,String content,String path) {
		
		BmobUser user = BmobUser.getCurrentUser(context);
		Person4 p4 = new Person4();
		p4.setUser(user);
		p4.setContent(content);
		p4.setPath(path);
		p4.save(context, new SaveListener() {
			
			
			@Override
			public void onSuccess() {
				// TODO 自动生成的方法存根
				System.out.println("1111成功添加数据");
			}
			
			@Override
			public void onFailure(int arg0, String arg1) {
				// TODO 自动生成的方法存根
				System.out.println("创建数据失败"+arg1);
			}
		});
	}*/
	
	
	
	/**
	 * 往Bmob后端上传文件的方法 String
	 * @param context
	 * @param file
	 *//*
	public void uploadFileString(final Context context,String file,String content) {
		Content = content;
		
		BTPFileResponse response1 =BmobProFile.getInstance(context).upload(file, new UploadListener() {
			
			@Override
			public void onError(int arg0, String arg1) {
				// TODO 自动生成的方法存根
				System.out.println("文件上传失败："+arg1);
			}
			
			@Override
			public void onSuccess(String arg0, String arg1, BmobFile arg2) {
				// TODO 自动生成的方法存根
				System.out.println("arg2 :"+arg2);
				add4(context,Content, arg2.getFileUrl(context));
			}
			
			@Override
			public void onProgress(int arg0) {
				// TODO 自动生成的方法存根
				
			}
		});
	}*/
	
	
	/**
	 * 多图数据的创建
	 */
	public void add3(Context context,String content,BmobFile[] paths) {
		
		BmobUser user = BmobUser.getCurrentUser(context);
		Person3 p3 = new Person3();
		p3.setUser(user);
		p3.setContent(content);
		for (int i = 0; i < paths.length; i++) {
			System.out.println("paths: "+paths[i]);
		}
		p3.setPaths(paths);
		p3.save(context, new SaveListener() {
			
			
			@Override
			public void onSuccess() {
				// TODO 自动生成的方法存根
				System.out.println("创建多图数据成功");
			}
			
			@Override
			public void onFailure(int arg0, String arg1) {
				// TODO 自动生成的方法存根
				System.out.println("创建多图数据失败"+arg1);
			}
		});
	}
	
	/**
	 * 查询数据的方法
	 */
	
/*	public void fetchData(Context context) {
		
		BmobQuery<Person> query = new BmobQuery<Person>();
		query.order("-createdAt");
		query.setLimit(10);
		BmobDate date = new BmobDate(new Date(System.currentTimeMillis()));
		query.addWhereLessThan("createdAt", date);
		query.include("user");
		query.findObjects(context, new FindListener<Person>() {
			
			@Override
			public void onSuccess(List<Person> list) {
				// TODO 自动生成的方法存根
				System.out.println("数据查询成功");
				mListItems.addAll(list);
			}
			
			@Override
			public void onError(int arg0, String msg) {
				// TODO 自动生成的方法存根
				System.out.println("数据查询失败");
			}
		});
		
	}
	*/
	
	
	
	
	
	
	/**
	 * 往Bmob后端上传文件的方法
	 * @param context
	 * @param file
	 */
	public void uploadFile(final Context context,String file,String content) {
		
			Content = content;
		BTPFileResponse response =BmobProFile.getInstance(context).upload(file, new UploadListener() {
			
			@Override
			public void onError(int arg0, String errormsg) {
				// TODO 自动生成的方法存根
				System.out.println("文件上传失败："+errormsg);
				
			}
			
			@Override
			public void onSuccess(String fileName, String url, BmobFile file) {
				
				System.out.println("文件上传成功："+fileName+",可访问的文件地址："+file.getUrl()+",BmobFile :"+file);
				add2(context,Content, file);
			}
			
			@Override
			public void onProgress(int progress) {
				// TODO 自动生成的方法存根
			}
		});
		
	}
	
	/**
	 * 多图上传
	 * @param context
	 * @param files
	 * @param content
	 */
	public void uploadFiles(final Context context,String[] files,final String content) {
		
		Content = content;
		BmobProFile.getInstance(context).uploadBatch(files, new com.bmob.btp.callback.UploadBatchListener() {
			
			@Override
			public void onError(int arg0, String arg1) {
				// TODO 自动生成的方法存根
				
			}
			
			@Override
			public void onSuccess(boolean arg0, String[] arg1, String[] arg2, BmobFile[] arg3) {
				// TODO 自动生成的方法存根
				System.out.println("批量上传成功");
				for (int i = 0; i < arg3.length; i++) {
					System.out.println(arg3[i]);
				}
				add3(context, content, arg3);;
			}
			
			@Override
			public void onProgress(int arg0, int arg1, int arg2, int arg3) {
				// TODO 自动生成的方法存根
				
			}
		});
			
	


}
}

